import ACCESS_ENUM from "@/assess/accessEnum";

/**
 * 检查权限(判断登录用户是否具有某种权限)
 * @param loginUser（当前登录用户）
 * @param needAccess(需要有待权限)
 */
const checkAccess = (
  loginUser: API.LoginUserVO,
  needAccess = ACCESS_ENUM.NOT_LOGIN
) => {
  // 获取当前登录用户的权限(没有登录时为NOT_LOGIN))
  const loginUserAccess = loginUser?.userRole ?? ACCESS_ENUM.NOT_LOGIN;

  //判断当前登录用户是否具有访问权限
  if (needAccess == ACCESS_ENUM.NOT_LOGIN) {
    return true;
  }

  if (needAccess == ACCESS_ENUM.USER) {
    //如果用户没登录，就无权访问
    if (loginUserAccess == ACCESS_ENUM.NOT_LOGIN) {
      return false;
    }
    return true;
  }

  if (needAccess == ACCESS_ENUM.ADMIN) {
    //如果用户是管理员角色，就允许访问
    if (loginUserAccess !== ACCESS_ENUM.ADMIN) {
      return false;
    }
  }
  return true;
};
export default checkAccess;
